// struct Stu{
//     name:String,
//     age:u8,
//     email:String
// }
// // 初始化实例时，需要为每个字段都进行初始化
// // 初始化时的字段顺序无需按照定义的顺序来
// fn main()
// {
//     let stu1 = Stu{
//         name: String::from("huiyun"),
//         age: 19,
//         email:String::from("2342@fgd"),
//     };

//     let stu2 = Stu{
//         age:18,
//         name:String::from("mingyang"),
//         email:String::from("351@qq.com")
//     };

//     //一旦实例是可变的，那么实例中所有的字段都是可变的
//     let mut stu3 = Stu{
//         name:String::from("exam"),
//         ..stu2
//     };
//     stu3.name = String::from("yhh");
//     println!("{}",stu3.name);


//     println!("{}",stu3.age);
//     println!("{} love {}",stu2.name,stu1.name);
//     println!("{}",stu3.age);
//     println!("{}",stu1.email);
// }



//练习  打印四边形的面积
#[derive(Debug)]
struct Rectangle {
    width:u32,
    length:u32
}

fn main()
{
    let  rect1= Rectangle{
        width:20,
        length:15
    } ;
    println!("{}",area(&rect1));

    println!("{:#?}",rect1);
}

fn area(rect:&Rectangle) -> u32
{
    rect.length * rect.width
}
